package com.yeziji.constant;

import com.yeziji.common.CommonEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * rabbit mq 交换器类型
 *
 * @author hwy
 * @since 2024/10/27 2:05
 **/
@Getter
@AllArgsConstructor
public enum RabbitMqExchangeTypeEnum implements CommonEnum {
    DIRECT(0, "direct", "默认类型：通过 exchange 以及 routeKey 直推对应队列"),
    TOPIC(1, "topic", "主题类型：通过 exchange 以及 routeKey + 通配符推送到对应满足的队列"),
    HEADERS(2, "headers", "头部参数类型：通过 exchange 以及绑定的 Arguments 进行转发"),
    FANOUT(3, "fanout", "广播类型：不需要 routeKey，通过 exchange 发送其所有绑定队列"),
    ;

    private final int code;
    private final String value;
    private final String desc;
}
